/**
 树是一种重要的非线性数据结构，直观地看，它是数据元素（在树中称为结点）按
 分支关系组织起来的结构。二叉树（binary tree）是每个节点最多有2个子树的有序树
 通常子树称作 左子树 和右子树
 
 二叉树算法的排序规则
 1.选择第一个元素作为根节点
 2.如果元素大于根节点放在右子树，如果元素小于根节点，则放在左子树
 3.最后按照中序排序遍历的方式进行输出，则可以得到排序的结果（左——》根——》右）
 
 */
/**
package com.leo.第七章_常用类库api;

public class U7_L11_二叉树排序 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		BinaryTree bt=new BinaryTree();
		bt.add(9);
		bt.add(2);
		bt.add(3);
		bt.add(4);
		bt.add(5);
		bt.add(6);
		bt.add(7);
		bt.print();
	}

}

class BinaryTree{
	private Node root;
	
	public void add(int data){
		if (root==null) {
			root=new Node(data);
		}else {
			root.addNode(data);
		}
	}
	public void print() {
		root.printNode();
	}
	private class Node{
		private int data;
		private Node left;
		private Node right;
		public Node(int data) {
			this.data=data;
		}
	
		public void addNode(int data) {
			if(this.data>data) {
				if(this.left==null) {
					this.left=new Node(data);	
				}else {
					this.left.addNode(data);
				}
			}else {
				if(this.right==null) {
					this.right=new Node(data);					
				}else {
					this.right.addNode(data);
				}
			}
		}
		
		public void printNode() {
			if(this.left!=null) {
				this.left.printNode();
			}
			System.out.print(this.data+"->");
			if(this.right!=null) {
				this.right.printNode();
			}
		}
	}
}
*/


